package com.cskaoyan.javase.oop3._2inner._4anonymous._1exercise;

/**
 * @description: 小练习
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 要求在控制台输出”HelloWorld”
 * 分析在main方法中有以下代码:
 *      Outer.method().show();
 * Outer是一个类名,类名点一个方法 --> method()是一个Outer类的静态成员方法
 * Outer.method()方法的返回值可以继续调用show方法,而show方法是接口中的方法
 * --> Outer.method()方法的返回值是接口子类对象 --> method()方法的返回值类型是接口Inter
 *
 * 程序要求show方法最终的结果是输出hello world --> show方法中需要输出hello world
 *
 * 匿名内部类的语法更加简洁好用方便
 *
 */
public class Demo {
    public static void main(String[] args) {
        Outer.method().show();
    }
}

interface Inter {
    void show();
}

class Outer {
    public static Inter method() {
        int a = 10;
        //return new InterImpl();
        return new Inter() {
            int a = 10;
            @Override
            public void show() {
                System.out.println("hello world!");
            }
        };
    }
}

class InterImpl implements Inter{
    @Override
    public void show() {
        System.out.println("hello world!");
    }
}